(function(window) {
    // 本地储存操作的类
    class localData {
        saveData = function(key, item) {
            // 储存数据需要键和值
            // 如果传过来的储存值为空则默认为空数组
            item = item || [];
            // JSON转换为字符串后存入本地储存中
            localStorage.setItem(key, JSON.stringify(item));
            return this;
        }
        loadData = function(key) {
            // 根据键获取本地储存的数据
            let temp = localStorage.getItem(key);
            if (temp) {
                // 如果获取到了，那么将其转换为数组返回
                return JSON.parse(temp);
            } else {
                // 没获取到则返回空数组
                return [];
            }
        }
        modiData = function(key, index, val) {
            // 修改本地数据需要键，对应数据的索引和修改后的值
            let temp = this.loadData(key);
            if (index > temp.length - 1 || index < 0) return;
            // 先读取本地储存中对应键的值
            temp[index] = val;
            // 修改后储存回本地储存中
            this.saveData(key, temp)
        }
        removeData = function(index, key) {
            // 移除本地数据需要索引号和键
            let temp = this.loadData(key);
            // 如果索引号是合法的，则去除对应索引号的数据，然后将删除后的数据保存回本地
            if (temp.length > index && index >= 0) {
                temp.splice(index, 1);
                this.saveData(key, temp);
            }
            return this;
        }
    }
    window.localData = localData;
})(window)